package web

import (
	"fmt"
	"github.com/gookit/validate"
	"ksd-social-api/commons/base/controller"
	"ksd-social-api/modules/course/model/context"
	"ksd-social-api/modules/course/service"
)

type CourseCommentController struct {
	controller.BaseController
}

var courseCommentService = service.CourseCommentService{}

///**
// * @author feige
// * @date 2023-10-08
// * @version 1.0
// * @desc 报错课程
// */
//func (web CourseCommentController) SaveCourseComment() {
//	// 1: 获取用户输入的评论信息 : 用户id,用户名，头像，评论的内容，评论课程id,课程标签，parentId=0
//	commentContext := context.CourseCommentContext{}
//	// 绑定参数
//	web.BindForm(&commentContext)
//	// 2: 验证评论是否输入
//	validation := validate.Struct(commentContext)
//	if !validation.Validate() {
//		web.FailWithValidatorData(validation)
//		return
//	}
//	commentContext.UserId = web.GetUserId()
//	commentContext.Username = web.GetUserName()
//	commentContext.UserAvatar = web.GetUserAvatar()
//
//	// 3: 保存入库
//	c, err := courseCommentService.SaveCourseComment(commentContext)
//	if err != nil {
//		web.FailCodeMsg(701, fmt.Sprintf("保存评论失败了，信息是：%s", err.Error()))
//		return
//	}
//	web.Ok(c)
//}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 报错课程
 */
func (web CourseCommentController) SaveCourseComment() {
	// 1: 获取用户输入的评论信息 : 用户id,用户名，头像，评论的内容，评论课程id,课程标签，parentId=0
	//commentContext := map[string]any{}
	//// 绑定参数
	//web.BindForm(&commentContext)
	commentContext := context.CourseCommentContext{}
	web.BindJSON(&commentContext)
	// 2: 验证评论是否输入
	validation := validate.Struct(commentContext)
	if !validation.Validate() {
		web.FailWithValidatorData(validation)
		return
	}
	//commentContext["UserId"] = web.GetUserId()
	//commentContext["Username"] = web.GetUserName()
	//commentContext["UserAvatar"] = web.GetUserAvatar()
	//web.Ok(commentContext)
	commentContext.UserId = web.GetUserId()
	commentContext.Username = web.GetUserName()
	commentContext.UserAvatar = web.GetUserAvatar()

	//3: 保存入库
	c, err := courseCommentService.SaveCourseComment(commentContext)
	if err != nil {
		web.FailCodeMsg(701, fmt.Sprintf("保存评论失败了，信息是：%s", err.Error()))
		return
	}
	web.Ok(c)
}
